package com.tencent.abstract_and_interface;

/**
 * 1
 * 
 * 创建员工的属性
 * 
 * java中抽象类更利于代码的维护和重用
 * 
 * 抽象类往往用来表征对问题领域进行分析、设计中得出的
 * 抽象概念，是对一系列看上去不同，但是本质上相同的具
 * 体概念的抽象。具体分析如下：
 * 
 * 1.因为抽象类不能实例化对象，所以必须要有子类来实现它之后才能使用。这样就
 * 可以把一些具有相同属性和方法的组件进行抽象，这样更有利于代码和程序的维护。
 * 
 * 2.当又有一个具有相似的组件产生时，只需要实现该抽象类就可以获得该抽象类的
 * 那些属性和方法
 * 
 *将具有共同特征的属性抽象出来 
 *
 *抽象类的应用场景：
 *抽象类必须约束子类必须有哪些方法，而并不关注子类如何去实现。
 *在某些情况下，某个父类只需知到其子类应该包含怎样的方法，但无法准确知道这些子类如何实现这些方法。
 *从多个具有相同特称的类中抽象出一个抽象类，以这个抽象类作为子类的模板，从而避免了子类设计的随意性。
 *
 *抽象类的作用：
 *限制规定子类必须实现某些方法，但不关注实现细节。
 *
 */
public abstract class Employee {
	public String name; // 姓名
	public int number; // 工号
	public double salary; // 薪水

	public Employee(int number, String name, double salary) {
		super();
		this.name = name;
		this.number = number;
		this.salary = salary;
	}



	// 抽象方法的声明
	public abstract void work();
}
